import {defineConfig, loadEnv} from 'vite';
import vue from '@vitejs/plugin-vue';
import path from 'path';

export default defineConfig(({mode}) => {
    // 根据当前工作目录中的 `mode` 加载 .env 文件
    // 设置第三个参数为 '' 来加载所有环境变量，而不管是否有 `VITE_` 前缀。
    const env = loadEnv(mode, process.cwd(), '');
    return {
        base: './',
        plugins: [vue()],
        resolve: {
            alias: {
                // 设置路径
                '~': path.resolve(__dirname, './'),
                // 设置别名
                '@': path.resolve(__dirname, './src')
            },
            extensions: ['.mjs', '.js', '.ts', '.jsx', '.tsx', '.json', '.vue'],
        },
        // vite 相关配置
        server: {
            https: false,
            port: env.VITE_APP_PORT,
            host: "0.0.0.0",
            open: true,
            proxy: {
                '/dev-api': {
                    target: env.VITE_API_URL,
                    ws: true,
                    changeOrigin: true,
                    rewrite: (p) => p.replace(/^\/dev-api/, '')
                },
            },
        },
        // vite 配置
        define: {
            __APP_ENV__: env.APP_ENV,
        },
    }
})
